package com.scott.itcast.thread.pool.lesson01;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 线程池 固定大小的线程池
 * 1:线程池中有几个线程
 * 2：往线程池中扔了多少个任务
 */
public class ThreadPoolTest {

	public static void main(String[] args) {
		
		//固定大小  3个线程的线程池
		ExecutorService threadPool = Executors.newFixedThreadPool(3);
		
		
		//往池子中扔10个任务   每1个任务都是1个Runnable
		for(int counter=1; counter<=10;counter++){
			
			final int pcs = counter;
			
			//execute 每执行1次就相当于执行1个任务
			threadPool.execute(new Runnable(){
				public void run() {
					for(int i=1;i<=5;i++){
						//在任务中具体要做的事情
						String name = Thread.currentThread().getName();
						System.out.println("本线程["+name+"]正在执行第"+pcs+"个任务"+"循环的次数是:"+ i+"/5");
						try {
							Thread.sleep(1000);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
					}
				}
			});
		}
		
		System.out.println("10个任务执行完毕....");
		
		//所有任务结束后 清空线程池中的所有线程。也就是说线程池中1个线程也没有了
		//threadPool.shutdown();
		//threadPool.shutdownNow();
	}
}
